package com.nutricia.common.api.enums;


import org.apache.commons.lang3.StringUtils;

/**
 * 权限code枚举，当前只记录一级审核和二级审核权限，其他权限暂时不在这里展示。
 *
 * @author: huangsheng
 * @date: 2018/2/5
 */
public enum PermissionCodeEnums{

    /**
     * 一级审核【审核通过】按钮权限
     */
    FIRST_LEVEL_AUDIT_PASS_BTN("first_level_audit_pass_btn", "一级审核【审核通过】按钮权限"),

    /**
     * 一级审核【审核不通过】按钮权限
     */
    FIRST_LEVEL_AUDIT_NOT_PASS_BTN("first_level_audit_not_pass_btn", "一级审核【审核不通过】按钮权限"),

    /**
     * 一级审核【上线预览】按钮权限
     */
    FIRST_LEVEL_AUDIT_PREVIEW_BTN("first_level_audit_preview_btn", "一级审核【上线预览】按钮权限"),

    /**
     * 一级审核菜单【查看】权限
     */
    FIRST_LEVEL_AUDIT_VIEW_MENU("first_level_audit_view_menu", "一级审核菜单【查看】权限"),

    /**
     * 二级审核【审核不通过】按钮权限
     */
    SECOND_LEVEL_AUDIT_NOT_PASS_BTN("first_level_audit_pass_btn", "二级审核【审核不通过】按钮权限"),

    /**
     * 二级审核【审核通过】按钮权限
     */
    SECOND_LEVEL_AUDIT_PASS_BTN("second_level_audit_pass_btn", "二级审核【审核通过】按钮权限"),

    /**
     * 二级审核【上线预览】按钮权
     */
    SECOND_LEVEL_AUDIT_PREVIEW_BTN("second_level_audit_preview_btn", "二级审核【上线预览】按钮权限"),

    /**
     * 二级审核菜单【查看】权限
     */
    SECOND_LEVEL_AUDIT_VIEW_MENU("second_level_audit_view_menu", "二级审核菜单【查看】权限");

    PermissionCodeEnums(String code, String description) {
        this.code = code;
        this.description = description;
    }

    /**
     * 根据code获取枚举
     *
     * @author: huangsheng
     * @date: 2018/2/5 下午5:47
     */
    public static PermissionCodeEnums getByCode(String code) {
        for (PermissionCodeEnums permissionCodeEnums : values()) {
            if (StringUtils.equals(permissionCodeEnums.getCode(), code)) {
                return permissionCodeEnums;
            }
        }
        return null;
    }

    /**
     * 场景码
     */
    private String code;

    /**
     * 描述
     */
    private String description;

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }
}
